//package com.ljy.jymail.jymailgateway.config;
//
//import com.alibaba.csp.sentinel.adapter.gateway.sc.callback.BlockRequestHandler;
//import com.alibaba.csp.sentinel.adapter.gateway.sc.callback.GatewayCallbackManager;
//import com.alibaba.fastjson.JSON;
//import com.ljy.common.exception.BizCodeEnum;
//import com.ljy.common.utils.R;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.web.reactive.function.server.ServerResponse;
//import org.springframework.web.server.ServerWebExchange;
//import reactor.core.publisher.Mono;
//
//@Configuration
//public class SentinelGatewayConfig {
//
//    public SentinelGatewayConfig() {
//        GatewayCallbackManager.setBlockHandler(new BlockRequestHandler() {
//            //网关限流请求后，就会调用此回调
//            //Mono Flux ：响应式编程
//            @Override
//            public Mono<ServerResponse> handleRequest(ServerWebExchange serverWebExchange, Throwable throwable) {
//                R error = R.error(BizCodeEnum.TO_MANY_REQUEST.getCode(), BizCodeEnum.TO_MANY_REQUEST.getMsg());
//                String jsonString = JSON.toJSONString(error);
//                Mono<ServerResponse> body = ServerResponse.ok().body(Mono.just(jsonString), String.class);
//                return body;
//            }
//        });
//    }
//}
